/* confAdmADT.h */

#ifndef _CONF_ADMINISTRATOR_H_
#define _CONF_ADMINISTRATOR_H_

#define FALSE		0
#define TRUE		1

#define MAX_KEY_LEN	120
#define MAX_VALUE_LEN	120

/* Tipo de dato del administrador de configuracion */
typedef struct confAdmCDT * confAdmADT;

/*
** OPERACIONES
*/

/* Crea un nuevo administrador de configuracion */
confAdmADT NewConfAdm(void);

/* Libera la memoria usada por un administrador de configuracion existente */
void freeConfAdm(confAdmADT conf);

/* Inicializa el administrador de configuracion desde un archivo */
int initConfAdm(confAdmADT conf, char * filename);

/* Guarda en un archivo el administrador de configuracion */
int saveConfAdm(confAdmADT conf, char * filename);

/* Agrega una propiedad al administrador de configuracion */ 
int addProperty(confAdmADT conf, char * key, char * value);

/* Actualiza una propiedad del administrador de configuracion */
int updateProperty(confAdmADT conf, char * key, char * value);

/* Busca el valor asociado a una clave del administrador de configuracion */
int findValue(confAdmADT conf, char * key, char ** resp);

/* Indica si la clave exite en el administrador de configuracion */
int existKey(confAdmADT conf, char * key);

/* Imprime todas las propiedades almacenadas en el administrador de configuracion */
void printConfAdm(confAdmADT conf);

#endif

